home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / Stdio+ / stdio+.h < prev    next >
Text File  |  1989-05-27  |  4KB  |  134 lines

  1. /*
  2.  * stdio.h
  3.  *
  4.  * defines the structure used by the LightSpeedC I/O ("standard I/O")
  5.  * routines and some of the associated values and macros.
  6.  *
  7.  * (C) Copyright 1985, 1986. THINK Technologies Inc. All rights reserved.
  8.  *
  9.  * Added in fdopen() & fdreopen(), Nigel Perry, 1989
  10.  */
  11.  
  12. #ifndef _stdioh_
  13. #define _stdioh_
  14.  
  15. /* By uncommenting the next #define you are allowed to use the paste
  16.     menu item in the stdio menus.  It allows the contents of the clipboard
  17.     to be pasted into the input stream. (see stdget_console.c for info) 
  18.     HOWEVER, IT ADDS OVER 200 BYTES TO THE SIZE OF STDIO! */
  19.     
  20. /* #define    _STD_PASTE_ */
  21.  
  22. #define    BUFSIZ    512
  23. #define    BUFSIZE    512
  24. #define    NULL    0L
  25. #define    _NFILE    30        /* increased from 15 */
  26. #define EOF        (-1)
  27.  
  28. #define    STDERRNO    2
  29. #define stdin    (&_file[0])
  30. #define    stdout    (&_file[1])
  31. #define    stderr    (&_file[STDERRNO])
  32. #define _console (&_console_)
  33.  
  34. #define MAX(a, b) (a > b ? a : b)
  35. #define MIN(a, b) (a < b ? a : b)
  36.  
  37. typedef    struct {
  38.     int        refnum;            /* OS Reference number        */
  39.     int        last_error;        /* holds last error on file    */
  40.     int        fileno;            /* fnum for level 1 I/O        */
  41.     unsigned user_buf:1,    /* 1 if user defined buffer    */
  42.             InUse:1,        /* 0 if free                  */
  43.             StdStream:1,    /* 0 = file, 1 = stdio         */
  44.             rd:1,wr:1,        /* flag for read and write    */
  45.             look_full:1,    /* flag for look_ahead        */
  46.             mod:1,            /* file modified flag        */
  47.             binary:1,        /* flag for binary file        */
  48.             window:1;        /* this is a window         */
  49.     unsigned char look_ahead;/* char for look_ahead        */
  50.     char    *filebuf;        /* Pointer to buffer        */
  51.     int        fpos;            /* pos of file in buffer    */
  52.     int        inbuf;            /* # of chars in buffer        */
  53.     } FILE;
  54.  
  55.  
  56. void    clearerr();        /* clear last error that occured */
  57. void    clrerr();        /* clear last error that occured */
  58. void    cputs();        /* puts a string to the console (screen) */
  59. void    gotoxy();        /* goto x,y on screen */
  60. void    Init_stdio();    /* initalize stdio (automatically done     */
  61. void    putch();        /* print a character to the console */
  62. void    rewind();        /* set pointer to beginning of a file */
  63. void    Set_Echo();        /* set I/O to echo or not (true=echo) */
  64. void    Set_Tab();        /* set the width of the tab stop */
  65. void    Click_On();        /* Sets the click_to_continue option of or off */
  66. void    Stdio_config(); /* font,size,face,mode */
  67. char    *cgets();        /* gets a string from the console (keyboard) */
  68. char    *fgets();        /* gets a string from an input stream */
  69. char    *gets();        /* gets a string from stdin */
  70. FILE    *fopen();        /* open a file */
  71. FILE    *fopenw();        /* open a file */
  72. FILE    *freopen();        /* open a file using the given stream */
  73. FILE    *fdopen();        /* open a file using volref/name pair */
  74. FILE    *fdreopen();    /* open a file using volref/name pair on the given stream */
  75. extern    FILE    _file[_NFILE];    /* file descriptor array (internal) */
  76. extern    FILE    _console_;        /* device name for the console */
  77. long    ftell();        /* get position within file */
  78.  
  79. /* new for windowed printf-2-w.c */
  80.  
  81. char *Get_ScreenPtr();
  82. void *Get_WindowPtr();    /* actually a WindowPtr -- this saves bringing in
  83.                             the include for WindowMgr.h */
  84.  
  85. int        _closeall();    /* close all open files */
  86. extern    int        errno;
  87.                                     
  88. /*   Default for these functions are int so they don't need to be declared 
  89. Boolean StdEvent();    -- this is fine since Booleans become ints
  90. cprintf();
  91. cscanf();
  92. fclose();
  93. feof();
  94. ferror();
  95. fflush();
  96. fgetc();
  97. fileno();
  98. fprintf();
  99. fputc();
  100. fputs();
  101. fread();
  102. fseek();
  103. fwrite();
  104. getch();
  105. getche();
  106. getxpos();
  107. getypos();
  108. isupper();
  109. islower();
  110. kbhit();
  111.  
  112.     - max() and min() are now defined as macros in <stdio.h>
  113.     
  114. puts();
  115. printf();
  116. sprintf();
  117. toint();
  118. tolower();
  119. toupper();
  120. ungetc();
  121. vcprintf();
  122. vfprintf();
  123. vprintf();
  124. vsprintf();
  125. _tolower();
  126. _toupper();
  127. onexit();
  128. */
  129. #define    getc(stream)    (fgetc(stream))
  130. #define    getchar()        (fgetc(stdin))
  131. #define    putc(c,stream)    (fputc(c,stream))
  132. #define    putchar(c)        (fputc(c,stdout))
  133.  
  134. #endif